var assessmentYear = 1; var ageCategory = 1; //input listeners var deductions_80c = document.getElementById("deductions_80c"); deductions_80c.addEventListener('input', function(evt) { if (deductions_80c.value > 150000) { deductions_80c.value = 150000; } }); var deductions_80ccd1b = document.getElementById("deductions_80ccd1b"); deductions_80ccd1b.addEventListener('input', function(evt) { if (deductions_80ccd1b.value > 50000) { deductions_80ccd1b.value = 50000; } }); var deductions_80d = document.getElementById("deductions_80d"); deductions_80d.addEventListener('input', function(evt) { ageCategory = document.getElementById("ageCategory").value; if (ageCategory == 1) { if (deductions_80d.value > 75000) { deductions_80d.value = 75000; } } else if (ageCategory == 2 || ageCategory == 3) { if (deductions_80d.value > 100000) { deductions_80d.value = 100000; } } }); var deductions_80g = document.getElementById("deductions_80g"); var deductions_80e = document.getElementById("deductions_80e"); var deductions_80tta = document.getElementById("deductions_80tta"); deductions_80tta.addEventListener('input', function(evt) { ageCategory = document.getElementById("ageCategory").value; if (ageCategory == 1) { if (deductions_80tta.value > 10000) { deductions_80tta.value = 10000; } } else if (ageCategory == 2 || ageCategory == 3) { if (deductions_80tta.value > 50000) { deductions_80tta.value = 50000; } } }); function Calculate() { assessmentYear = document.getElementById("assessmentYear").value; ageCategory = document.getElementById("ageCategory").value; // Income var grossSalaryIncome = parseFloat(document.getElementById("gross_salary_income").value); var annualIncomeFromOtherSources = parseFloat(document.getElementById("annual_income_from_other_sources").value); var annualIncomeFromInterest = parseFloat(document.getElementById("annual_income_from_interest").value); var rentalIncome = parseFloat(document.getElementById("rental_income").value); var interestPaidOnHomeLoan = parseFloat(document.getElementById("interest_paid_on_home_loan").value); var interestPaidOnHomeLoanLetOut = parseFloat(document.getElementById("interest_paid_on_home_loan_let_out").value); // Deductions var deductions80c = parseFloat(deductions_80c.value); var deductions80ccd1b = parseFloat(deductions_80ccd1b.value); var deductions80d = parseFloat(deductions_80d.value); var deductions80g = parseFloat(deductions_80g.value); var deductions80e = parseFloat(deductions_80e.value); var deductions80tta = parseFloat(deductions_80tta.value); // HRA Exemption var basicSalary = parseFloat(document.getElementById("basic_salary").value); var dearnessAllowance = parseFloat(document.getElementById("dearness_allowance").value); var hra = parseFloat(document.getElementById("hra").value); var totalRentPaid = parseFloat(document.getElementById("total_rent_paid").value); var metroCity = document.getElementById("metroCity").value; if (grossSalaryIncome >= 0 && annualIncomeFromOtherSources >= 0 && annualIncomeFromInterest >= 0 && rentalIncome >= 0 && interestPaidOnHomeLoan >= 0 && interestPaidOnHomeLoanLetOut >= 0 && deductions80c >= 0 && deductions80ccd1b >= 0 && deductions80tta >= 0 && deductions80g >= 0 && deductions80d >= 0 && deductions80e >= 0 && basicSalary >= 0 && dearnessAllowance >= 0 && hra >= 0 && totalRentPaid >= 0) { var grossAnnualIncome = grossSalaryIncome + annualIncomeFromOtherSources + annualIncomeFromInterest; var municipalTaxes = 0; var netAnnualValue = rentalIncome - municipalTaxes; var standardDeduction = 30 * netAnnualValue / 100; var totalIncome = grossAnnualIncome + (netAnnualValue - standardDeduction - interestPaidOnHomeLoan - interestPaidOnHomeLoanLetOut); var defaultStandardDeduction = 0; if (assessmentYear == 1) { defaultStandardDeduction = 50000; } else if (assessmentYear == 2) { defaultStandardDeduction = 40000; } var totalDeduction = defaultStandardDeduction + deductions80c + deductions80ccd1b + deductions80tta + deductions80g + deductions80d + deductions80e; var hra2 = 0; if (metroCity == 1) { hra2 = 50 * basicSalary / 100; } else if (metroCity == 2) { hra2 = 40 * basicSalary / 100; } var hra3 = totalRentPaid - (basicSalary / 10) + dearnessAllowance; var totalHraExemption = Math.min(hra, hra2, hra3); var finalHraAmountToBeTaxed = hra - totalHraExemption; totalTaxableIncome = totalIncome - totalDeduction - totalHraExemption; var incomeTaxPayable = 0; var incomeTaxPayableWithCess = 0; var differenceInTax = 0; var differenceInTaxableIncome = 0; var marginalRelief = 0; if (totalTaxableIncome >= 0 && totalTaxableIncome <= 20000000) { if (ageCategory == 1) { if (totalTaxableIncome <= 250000) { //income tax payable is already set to 0 } else if (totalTaxableIncome >= 250001 && totalTaxableIncome <= 500000) { incomeTaxPayable = (5 * (totalTaxableIncome - 250000) / 100); } else if (totalTaxableIncome >= 500001 && totalTaxableIncome <= 1000000) { incomeTaxPayable = 12500 + (20 * (totalTaxableIncome - 500000) / 100); } else if (totalTaxableIncome >= 1000001 && totalTaxableIncome <= 5000000) { incomeTaxPayable = 112500 + (30 * (totalTaxableIncome - 1000000) / 100); } else if (totalTaxableIncome >= 5000001 && totalTaxableIncome <= 5200000) { incomeTaxPayable = 112500 + (30 * (totalTaxableIncome - 1000000) / 100); incomeTaxPayable = incomeTaxPayable + (incomeTaxPayable * 0.10); differenceInTax = incomeTaxPayable - 1312500; differenceInTaxableIncome = totalTaxableIncome - 5000000; marginalRelief = differenceInTax - differenceInTaxableIncome; incomeTaxPayable = incomeTaxPayable - marginalRelief; } else if (totalTaxableIncome >= 5200001 && totalTaxableIncome <= 10000000) { incomeTaxPayable = 112500 + (30 * (totalTaxableIncome - 1000000) / 100); incomeTaxPayable = incomeTaxPayable + (incomeTaxPayable * 0.10); } else if (totalTaxableIncome >= 10000001 && incomeTaxPayable <= 10300000) { incomeTaxPayable = 112500 + (30 * (totalTaxableIncome - 1000000) / 100); incomeTaxPayable = incomeTaxPayable + (incomeTaxPayable * 0.15); differenceInTax = incomeTaxPayable - 3093750; differenceInTaxableIncome = totalTaxableIncome - 10000000; marginalRelief = differenceInTax - differenceInTaxableIncome; incomeTaxPayable = incomeTaxPayable - marginalRelief; } else if (totalTaxableIncome >= 10300001) { incomeTaxPayable = 112500 + (30 * (totalTaxableIncome - 1000000) / 100); incomeTaxPayable = incomeTaxPayable + (incomeTaxPayable * 0.15); } } else if (ageCategory == 2) { if (totalTaxableIncome <= 300000) { //income tax payable is already set to 0 } else if (totalTaxableIncome >= 300001 && totalTaxableIncome <= 500000) { incomeTaxPayable = (5 * (totalTaxableIncome - 300000) / 100); } else if (totalTaxableIncome >= 500001 && totalTaxableIncome <= 1000000) { incomeTaxPayable = 0 + 10000 + (20 * (totalTaxableIncome - 500000) / 100); } else if (totalTaxableIncome >= 1000001 && totalTaxableIncome <= 5000000) { incomeTaxPayable = 0 + 10000 + 100000 + (30 * (totalTaxableIncome - 1000000) / 100); } else if (totalTaxableIncome >= 5000001 && totalTaxableIncome <= 5200000) { incomeTaxPayable = 0 + 10000 + 100000 + (30 * (totalTaxableIncome - 1000000) / 100); incomeTaxPayable = incomeTaxPayable + (incomeTaxPayable * 0.10); differenceInTax = incomeTaxPayable - 1310000; differenceInTaxableIncome = totalTaxableIncome - 5000000; marginalRelief = differenceInTax - differenceInTaxableIncome; incomeTaxPayable = incomeTaxPayable - marginalRelief; } else if (totalTaxableIncome >= 5200001 && totalTaxableIncome <= 10000000) { incomeTaxPayable = 0 + 10000 + 100000 + (30 * (totalTaxableIncome - 1000000) / 100); incomeTaxPayable = incomeTaxPayable + (incomeTaxPayable * 0.10); } else if (totalTaxableIncome >= 10000001 && totalTaxableIncome <= 10300000) { incomeTaxPayable = 0 + 10000 + 100000 + (30 * (totalTaxableIncome - 1000000) / 100); incomeTaxPayable = incomeTaxPayable + (incomeTaxPayable * 0.15); differenceInTax = incomeTaxPayable - 3091000; differenceInTaxableIncome = totalTaxableIncome - 10000000; marginalRelief = differenceInTax - differenceInTaxableIncome; incomeTaxPayable = incomeTaxPayable - marginalRelief; } else if (totalTaxableIncome >= 10300001) { incomeTaxPayable = 0 + 10000 + 100000 + (30 * (totalTaxableIncome - 1000000) / 100); incomeTaxPayable = incomeTaxPayable + (incomeTaxPayable * 0.15); } } else if (ageCategory == 3) { if (totalTaxableIncome <= 500000) { //income tax payable is already set to 0 } else if (totalTaxableIncome >= 500000 && totalTaxableIncome <= 1000000) { incomeTaxPayable = (20 * (totalTaxableIncome - 500000) / 100); } else if (totalTaxableIncome >= 1000001 && totalTaxableIncome <= 5000000) { incomeTaxPayable = 0 + 100000 + (30 * (totalTaxableIncome - 1000000) / 100); } else if (totalTaxableIncome >= 5000001 && totalTaxableIncome <= 5200000) { incomeTaxPayable = 0 + 100000 + (30 * (totalTaxableIncome - 1000000) / 100); incomeTaxPayable = incomeTaxPayable + (incomeTaxPayable * 0.10); differenceInTax = incomeTaxPayable - 1300000; differenceInTaxableIncome = totalTaxableIncome - 5000000; marginalRelief = differenceInTax - differenceInTaxableIncome; incomeTaxPayable = incomeTaxPayable - marginalRelief; } else if (totalTaxableIncome >= 5200001 && totalTaxableIncome <= 10000000) { incomeTaxPayable = 0 + 100000 + (30 * (totalTaxableIncome - 1000000) / 100); incomeTaxPayable = incomeTaxPayable + (incomeTaxPayable * 0.10); } else if (totalTaxableIncome >= 10000001 && totalTaxableIncome <= 10300000) { incomeTaxPayable = 0 + 100000 + (30 * (totalTaxableIncome - 1000000) / 100); incomeTaxPayable = incomeTaxPayable + (incomeTaxPayable * 0.15); differenceInTax = incomeTaxPayable - 3080000; differenceInTaxableIncome = totalTaxableIncome - 10000000; marginalRelief = differenceInTax - differenceInTaxableIncome; incomeTaxPayable = incomeTaxPayable - marginalRelief; } else if (totalTaxableIncome >= 10300001) { incomeTaxPayable = 0 + 100000 + (30 * (totalTaxableIncome - 1000000) / 100); incomeTaxPayable = incomeTaxPayable + (incomeTaxPayable * 0.15); } } incomeTaxPayableWithCess = incomeTaxPayable + (4 * incomeTaxPayable / 100); var showIncomeTaxValue = document.getElementById("show_income_tax_value"); showIncomeTaxValue.classList.remove("hide"); var incomeTaxPayableAmount = document.getElementById("income_tax_payable_amount"); incomeTaxPayableAmount.innerHTML = "Income Tax Payable: Rs. " + incomeTaxPayableWithCess.toLocaleString(); } else { var showIncomeTaxValue = document.getElementById("show_income_tax_value"); showIncomeTaxValue.classList.remove("hide"); var incomeTaxPayableAmount = document.getElementById("income_tax_payable_amount"); incomeTaxPayableAmount.innerHTML = "This calculator can only calculate income tax for taxable income from zero to 2 crores only."; } } else { var showIncomeTaxValue = document.getElementById("show_income_tax_value"); showIncomeTaxValue.classList.remove("hide"); var incomeTaxPayableAmount = document.getElementById("income_tax_payable_amount"); incomeTaxPayableAmount.innerHTML = "Please fill all the details carefully!"; } }